Is Branch Coverage a Good Measure of Testing Effectiveness?
نویسندگان
چکیده
Most approaches to testing use branch coverage to decide on the quality of a given test suite. The intuition is that covering branches relates directly to uncovering faults. The empirical study reported here applied random testing to 14 Eiffel classes for a total of 2520 hours and recorded the number of uncovered faults and the branch coverage over time. For the tested classes, (1) random testing reaches 93% branch coverage (2) it exercises almost the same set of branches every time, (3) it detects different faults from execution to execution, (4) during the first 10 minutes of testing, while branch coverage increases rapidly, there is a strong correlation between branch coverage and the number of uncovered faults, (5) over 50% of the faults are detected at a time where branch coverage hardly changes, and the correlation between branch coverage and the number of uncovered faults is weak. These results provide evidence that branch coverage is not a good stopping criterion for random testing. They also show that branch coverage is not a good indicator for the effectiveness of a test suite.
منابع مشابه
Is Coverage a Good Measure of Testing Effectiveness? An Assessment Using Branch Coverage and Random Testing
Most approaches to testing use branch coverage to decide on the quality of a given test suite. The intuition is that covering branches relates directly to uncovering faults. In this article we present an empirical study that applied random testing to 14 Eiffel classes for a total of 2520 hours and recorded the number of uncovered faults and the branch coverage over time. Our results show that: ...
متن کاملMinimal Test Case Generation for Effective Program Test using Control Structure Methods and Test Effectiveness Ratio
Software testing is the critical activity in any industrial–strength software development process. As the software grows in size, its complexity increases and testing becomes more difficult. Hence generating test cases manually produces more errors and affects overall system quality. In this paper, we have proposed a tool for automatic generation of test cases using the control structure method...
متن کاملEfficacy of AETG∗Test Cases as measured by code coverage
Software testing must be performed as efficiently as possible as it can be very expensive. Efficient testing requires a small set of tests that does a good job of locating program faults. The AETG system takes information about the program being tested and generates a small efficient set of test cases [1] [3] [4]. The AETG system has been used in several applications. These include testing comm...
متن کاملImpact of pair programming on thoroughness and fault detection effectiveness of unit test suites
Pair programming is regarded as one of the practices that can make testing more rigorous, thorough and effective. Therefore, we examined pair programming vs. solo programming with respect to both, thoroughness and fault detection effectiveness of test suites. Branch coverage and mutation score indicator were used as measures of how thoroughly tests exercise programs, and how effective they are,...
متن کاملPrioritization of Test Cases using Branch Coverage with Multiple criteria for Regression Testing
Prioritization of test cases is generally done to reduce the cost of regression testing. We prioritize our test cases so that those which are more important, by some measure, are made to run earlier in the testing phase. There exists a large variety of prioritization techniques in the literature, we have basically used coverage-based prioritization techniques (i.e., prioritization in terms of t...
متن کامل